package com.spy.material.dto;

import lombok.Data;
import javax.validation.constraints.*;
import java.math.BigDecimal;

/**
 * 出库单明细创建DTO
 */
@Data
public class OutboundOrderDetailCreateDTO {
    
    /**
     * 物料名称
     */
    @NotBlank(message = "物料名称不能为空")
    @Size(max = 50, message = "物料名称长度不能超过50个字符")
    private String materialName;
    
    /**
     * 物料类别
     */
    @NotBlank(message = "物料类别不能为空")
    @Size(max = 50, message = "物料类别长度不能超过50个字符")
    private String materialCategory;
    
    /**
     * 单位
     */
    @NotBlank(message = "单位不能为空")
    @Size(max = 10, message = "单位长度不能超过10个字符")
    private String unit;
    
    /**
     * 单价
     */
    @NotNull(message = "单价不能为空")
    @DecimalMin(value = "0.0", inclusive = false, message = "单价必须大于0")
    @Digits(integer = 8, fraction = 2, message = "单价整数部分最多8位，小数部分最多2位")
    private BigDecimal unitPrice;
    
    /**
     * 出库数量
     */
    @NotNull(message = "出库数量不能为空")
    @Min(value = 1, message = "出库数量必须大于0")
    private Integer outboundQuantity;
    
    /**
     * 总价
     */
    @NotNull(message = "总价不能为空")
    @DecimalMin(value = "0.0", inclusive = false, message = "总价必须大于0")
    @Digits(integer = 10, fraction = 2, message = "总价整数部分最多10位，小数部分最多2位")
    private BigDecimal totalPrice;
}